 1 DE.;CLEAR ;FOR A=-80TO 80STEP 2;CIRCLE 0,-1,A,RND (3);NEXT A;CF=LA.;PRINT "    VIDEO  INSTRUCTIONS  ";CF=SM.;PRINT ;CX=-7;PRINT " FOR ";CY=CY-1;CF=LA.;CX=-47;PRINT "V I P E R S O F T";CX=-24;PRINT "B A S I C";PRINT 
 2 CY=CY-1;CX=-15;CF=SM.;PRINT " PART 1 
 3 PRINT "     THIS PROGRAM IS INTENDED TO HIGH-    LIGHT THE NEW CONVENTIONS, COMMANDS,  "
 4 PRINT "  VARIABLES, AND FUNCTIONS AVAILABLE      WITH THIS EXTENDED GRAPHICS LANGUAGE. ";CY=-46;PRINT "                                      ";GOTO 9
 5 .....NEW SYSTEM LEVEL COMMANDS.....     .
 6 . ZERO     [ ZERO OUT VARIABLES A-Z]    .                                       . DEFAULT  [ RESET SYSTEM VARIABLES,    .   IE. CHARACTER - GRAPHIX WINDOWS,
 7 .   SOUND PROCESSOR LEVEL ETC. ]        .                                       . NEW      [ ERASES AND CHECKS ALL  
 8 .    MEMORY, UPDATES SIZE (SZ) TO       .    REFLECT AVAILABLE PROGRAM AREA,    .    PERFORMS THE ZERO AND DEFAULT      .    COMMANDS ]
 9 P=10000;GOSUB P;SCROLL 0,-26,160,51,-51;SCROLL 0,26,160,53,52;CY=45;CC=2;LIST 5,1;CC=3;LIST 6,3
10 GOSUB P;CT=45;SCROLL 0,-5,160,89,-89;CY=23;LIST 22,2;GOSUB P;CLEAR ;DE.;CC=2;LIST 12,1;CC=7;LIST 13,5;CC=3;LIST 18,2;CC=5;GOTO 20
12 ....  NEW  GRAFIX  COMMANDS ....
13 ..CIRCLE   X,Y,R,M
14 ..SCROLL   X,Y,XS,YS,L
15 ..SNAP     X,Y,XS,YS,@(STRING NO.)
16 ..POINT    X,Y,M
17 ..SHOW     X,Y,SM,@(STRING NO.)
18 ........... LEGEND .............        . X= HORIZONTAL PIXEL CENTER            . Y=  VERTICAL    "     "               .XS= HORIZONTAL PIXEL WIDTH
19 .YS=  VERTICAL  PIXEL HEIGHT            . M= SCREEN WRITE MODE                  .SM= SHOW SCREEN WRITE MODE             . L= + OR - NO. OF PIXEL LINES
20 GOSUB P;CLEAR ;CC=2;LIST 30,1;CC=7;LIST 32,4;CC=2;LIST 40,1;CC=7;LIST 42,3;GOTO 50
22 .          DATA OPERATOR                .                                       .    DATA VARIABLE, #, #, #, ETC.       .
24 .    EXAMPLE:  DATA A,1,2,3             .     IS EQUIVELENT TO:                 .              A=1;B=2;C=3
30 .... NEW SCREEN WRITE MODES ....        [ BOX ,CIRCLE ,LINE, AND POINT  ]      
32 .    0-NOTHING   4-PLOP 0
34 .    1-XOR 1     5-PLOP 1
36 .    2-XOR 2     6-PLOP 2
38 .    3-XOR 3     7-PLOP 3              
40 ...... NEW SHOW MODES ......
42 . 0-PLOP (SHOWN PIXELS ONLY)
44 . 1- OR  (SHOWN PIXELS PLUS EXISTING              SCREEN IMAGE)
46 . 2- XOR (SHOWN PIXELS CHANGE COLOR               WHEN COINCIDENTAL WITH                  SCREEN IMAGE)
50 GOSUB P;CLEAR ;LIST 52,13;GOTO 80
54 ...... NEW SYSTEM VARIABLES ......     
56 .XL+XR   [ LEFT+RIGHT GRAFIX WINDOW ]
58 .YT+YB   [ TOP+BOTTOM GRAFIX WINDOW ]
60 .CL+CR  [LEFT+RIGHT CHARACTER WINDOW]
62 .CT+CB  [TOP+BOTTOM CHARACTER WINDOW]
64 .  CF    [ CHARACTER FONT     ]
66 .  CC    [ CHARACTER COLOR    ]
68 .  FA    [ FOREGROUND COLOR 1 ]
70 .  FB    [ FOREGROUND COLOR 2 ]
72 .  FC    [ FOREGROUND COLOR 3 ]
74 .  BC    [ BACKGROUND COLOR   ]
76 .  LC  [ LAST CHARACTER ON SCREEN ]
78 .  NB  [PRINT # BASE (BIN,HEX,DEC)]
80 GOSUB P;CLEAR ;CF=LA.;CC=2;PRINT "   NEW SYSTEM FUNCTIONS";CF=SM.;CC=7;PRINT ;LIST 84,3
82 .NEW SYSTEM FUNCTIONS.
84 .  ADDRESS OPERATOR  ◄  (LEFT ARROW)    .     PUTTING A LEFT ARROW IN FRONT     .    OF A VARIABLE, WILL YEILD ITS'     .    PHYSICAL MEMORY ADDRESS.
86 .                                       .     EXAMPLE:                          .                     PRINT ◄A          .      WILL PRINT : 
88 .                     -32598            .      WHICH IS THE MEMORY LOCATION     .      WHERE A'S VALUE IS STORED.
90 GOSUB P;CT=35;SCROLL 0,-8,160,86,-86;CY=23;LIST 92,2
91 GOSUB P;SCROLL O,-8,160,86,86;CY=23;LIST 95,3
92 .   HEX NUMBER OPERATOR   " ! "         .     PUTTING A  !  IN FRONT OF A       .    NUMBER, FLAGS IT AS HEXIDECIMAL.   .
93 .    EXAMPLE:                           .                                       .     PRINT !2FF   YEILDS  767  THE     .          DECIMAL EQUIVELENT.          .
95 .  BYTE ACCESS OPERATOR  " BYTE "       .                                       .    BYTE (VARIABLE,BYTE #)             .
96 .  EXAMPLE: BYTE(A,0)=1;BYTE(A,1)=1;    .           PRINT A                     .   YEILDS: 257, THE WORD VALUE         .           PRINT BYTE(A,1)
97 .   YEILDS:   1, THE HIGH BYTE VALUE    .
98 GOSUB P;BOX 0,-8,160,86,4;CY=30;LIST 100,5
100 .      TOKEN  ABBREVIATION             
101 . TOKENS MAY BE ABBREVIATED BY          TYPING THE FIRST LETTER OR TWO OF       THE WORD FOLLOWED BY A PERIOD         
102 .          EXAMPLES:                  
103 . PRINT = P.  (NOTHING ELSE STARTS                        WITH P )
104 . DATA = DA.  (DEFAULT ALSO STARTS                         WITH D )
109 GOSUB P;DE.;CLEAR ;LIST 110,2;CT=33;LIST 112,13;GOTO 150
110 . -VIPER KEYBOARD TOKENS- 
111 .  CONTROL         TOKEN                . CHARACTER       COMMAND
114 .     A          [ RND    ]
116 .     B          [ BOX    ]
118 .     C          [ CLEAR  ]
120 .     D          [ DATA   ]
122 .     E          [ EDIT   ]
124 .     F          [ FOR    ]
126 .     G          [ GOSUB  ]
128 .     H          [ ERASE  ]
130 .     I          [ INPUT  ]
132 .     J          [ GOTO   ]
134 .     K          [  IF    ]
136 .     L          [ LIST   ]
138 .     M          [  GO    ]
150 GOSUB P;SCROLL 0,42,160,18,6;CT=39;CY=39;BOX 0,-47,160,7,4;CY=-45;CB=-45;LIST 159,13
158 .     M          [  GO    ]
160 .     N          [ NEXT   ]
162 .     O          [ CIRCLE ]
164 .     P          [ PRINT  ]
166 .     Q          [ SNAP   ]
168 .     R          [ RETURN ]
170 .     S          [ STEP   ]
172 .     T          [ TO     ]
174 .     U          [ POINT  ]
176 .     V          [DEFAULT ]
178 .     W          [ SHOW   ]
180 .     X          [ RUN    ]
182 .     Y          [ SCROLL ]
184 .     Z          [ ZERO   ]
200 GOSUB P;CLEAR ;DE.;CF=LA.;CC=2;PRINT "  ... TAPE FUNCTIONS ...
210 CC=3;CF=SM.;PRINT "  300 BAUD BALLY BASIC COMPATIBILITY
220 PRINT ;PRINT "   :PRINT        :INPUT        :LIST 
230 PRINT ;PRINT " THESE 3 COMMANDS ARE IMPLEMENTED IN THE
240 PRINT "SAME WAY AS IN BALLY BASIC.
250 PRINT " DUE TO THE INCREASED SPEED OF EXTENDED
260 PRINT "BASIC, NT (NOTE TIME) SHOULD BE SET TO 3
270 PRINT "WHEN USING  :PRINT  TO INSURE A GOOD 
280 PRINT "LOAD USING  :INPUT  IN BALLY BASIC.
290 GOSUB P;BOX 0,-11,160,94,4;PRINT ;CY=39
300 PRINT "  2000 BAUD ASTRO BASIC COMPATIBILITY";PRINT 
310 PRINT "     PUT %( VARIABLE ), NUMBER";PRINT 
320 PRINT " PUT  IN EXT.BAS. IS COMPATIBLE WITH
330 PRINT ":PRINT %( VARIABLE ), NUMBER  IN ASTRO
340 PRINT "BASIC.  HERE, THARIABLE WOULD BE THE
350 PRINT "BEGINNING ADDRESS OF A BLOCK OF MEMORY
360 PRINT "AND NUMBER, THE WORD COUNT OF THE BLOCK.";PRINT 
370 PRINT "[PUT ",;CF=LA.;PRINT "@",;CF=SM.;PRINT "(VARIABLE),NUMBER IS ALSO VALID]
380 GOSUB P;GOSUB 1000;CY=27;PRINT "         GET %( VARIABLE )";PRINT 
390 PRINT "  GET IN EXT.BAS. IS COMPATIBLE WITH
400 PRINT " :INPUT %( VARIABLE ) IN ASTRO BASIC.   HERE, VARIABLE IS THE BEGINNING ADDRESS  IN MEMORY TO BE LOADED FROM TAPE.
410 GOSUB P;GOSUB 1000;CY=40;PRINT 
420 CF=LA.;PRINT "      ... LOAD ...";CF=SM.
430 PRINT ;PRINT "   LOAD  IN EXT.BAS. IS EQUIVELENT TO    :INPUT %(-24576)  IN ASTRO BASIC.
440 PRINT ;PRINT "   AN EXT.BAS. PROGRAM SAVED TO TAPE     USING THE  SAVE  COMMAND, CAN THEN BE   LOADED UNDER ASTRO BASIC USING THE      COMMAND  :INPUT %(-24576)  .
450 GOSUB P;GOSUB 1000;CY=34
460 CF=LA.;PRINT "       ... SAVE ...";CF=SM.;PRINT 
470 PRINT "         SAVE  IS EQUIVELENT TO
480 PRINT " A=-24576;:PRINT %(A),(%(20000)-A)÷2+RM
490 PRINT ;PRINT "   USING THE SEQUENCE ABOVE TO SAVE AN   ASTRO BASIC PROGRAM, WILL ALLOW YOU     TO INPUT IT UNDER EXT,BAS. WITH  LOAD
500 GOSUB P;GOSUB 1000;CY=34
510 CF=LA.;PRINT "          VERIFY";PRINT ;CF=SM.
520 PRINT "   VERIFY  IS EQUIVELENT TO  :LIST  IN   ASTRO BASIC. IT FUNCTIONS THE SAME,     RETURNING A  ?  IF IT DETECTS AN ERROR.
530 PRINT "   V.  IS ALL THAT IS NECESSARY TO       VERIFY A TAPE MADE WITH  SAVE OR PUT .
540 GOSUB P;DE.;CLEAR ;CF=LA.;CY=20;PRINT "       END OF PART 1
550 CF=SM.;PRINT ;PRINT ;PRINT "  ALTERNATIVE ENGINEERING CORPORATION     P.O. BOX 128  GARDINER, MAINE 04345";PRINT 
560 STOP
1000 BOX 0,-11,160,94,4;RETURN 
10000 CY=-47;CC=RND (2)+1;PRINT "    PRESS GO, ( RETURN ) TO CONTINUE ";NT=3;A=RND (10)+64;MU=A;NT=0;IF KPCC=7;RETURN 
:RETURN 
